package edu.kmust.simple;

/**
 * @author: 常伟
 * @create: 2019/3/12 20:57
 * @email: kmustchang@qq.com
 * @version: 1.0
 * @Description: 第十九题：页码计数问题
 *                  第一种解决办法，使用的穷举算法进行求解
 */
public class ExaminationNineteen01 {

    /**这个表示一种要有多少页*/
    int page=0;

    public static void main(String[] args) {
        ExaminationNineteen01 examinationNineteen01=new ExaminationNineteen01();
        examinationNineteen01.completePage(1578);
        System.out.println(examinationNineteen01.page);
    }

    /**
     * 用于计算标记页码的十进制总和一共需要多少页
     * @param totalCount 这个表示所有用于标记页码的十进制数总和
     */
    private void completePage(int totalCount) {
        //这个表示当前数字需要多少十进制数字表示
        int baseCount=1;
        //这个表示每一次进行多少位数字的统计
        int divide=10;
        //表示当前页数的十进制数总和
        int currentCount=0;
        while (true){
            page++;
            if(page/divide!=0){
                baseCount++;
                divide*=10;
            }
            currentCount+=baseCount;
            if(currentCount>=totalCount){
                break;
            }
        }
        if(currentCount!=totalCount){
            page=0;
        }
    }

}
